#pragma once

#include "fxcc/core/BaseImporter.h"
#include "fxcc/mono/CSharpMetaCacheFile.h"

struct CSharpImpoter :public BaseImporter
{
	static CSharpMetaCacheFile m_CSharpCacheFile;
	
	static std::string m_CSharpMetaPath;
	
	static std::vector<std::string > m_DependencyDir;

	static bool SaveCache();

	static bool LoadCache();

	static bool AddDepPath(const std::string& dir);

	std::string m_DllPath = "Assembly";

	CSharpImpoter()
	{
		m_Name = "CSharp Importer";
	}

	bool ImportFile(const fxcc::File& file) override;

	bool Availed(const fxcc::File& file);

	bool ImportCSharpFile(const fxcc::File& file);

	bool CompileCSToDll(const std::string& csFile, const std::string& targetDll);



};